import time, sys
from ftraffic import EVsGenerator
from feasytools import ArgChecker

DEFAULT_CNAME = "probtable"
HELP_STR = f"""
行程生成程序
{sys.argv[0]} -n <车辆数> -d <SUMO配置文件夹> [-c <行程参数文件夹>] [-v <V2G概率>] [--seed <随机化种子>]
  n: 车辆数
  d: SUMO配置文件夹
  c: 行程参数文件夹, 默认使用"{DEFAULT_CNAME}"
  v: 每个用户愿意参加V2G的概率, 默认为1
  seed: 随机化种子, 不指定则使用当前时间(纳秒)
"""


def generate_trips(
    pname: str,
    seed: int,
    N_cnt: int,
    v2g_prop: float,
    cname: str = DEFAULT_CNAME,
    silent: bool = False,
):
    EVsGenerator(cname, pname, seed).genEVs(
        N_cnt, v2g_prop, f"{pname}/{pname}.veh.xml", silent
    )


if __name__ == "__main__":
    params = ArgChecker()
    if params.pop_bool("h"):
        print()
        sys.exit()

    N_cnt = params.pop_int("n")
    pname = params.pop_str("d")
    cname = params.pop_str("c", DEFAULT_CNAME)
    v2g_prop = params.pop_float("v", 1.0)
    seed = params.pop_int("seed", time.time_ns())
    generate_trips(pname, seed, N_cnt, v2g_prop, cname)
